var table
$(document)
		.ready(
				function() {
					var url = "jsons.action";
					table = $("#example1")
							.DataTable(
									{
										/*
										 * "aLengthMenu":[2,10,15,20],
										 * //动态指定分页后每页显示的记录数。
										 */"sPaginationType" : "full_numbers",
										"serverSide" : true,
										"searching" : false,// 禁用搜索
										"lengthChange" : true, // 是否启用改变每页显示多少条数据的控件
										"sort" : "position", // 是否开启列排序，对单独列的设置在每一列的bSortable选项中指定
										"deferRender" : true,// 延迟渲染
										"bStateSave" : false, // 在第三页刷新页面，会自动到第一页
										"iDisplayLength" : 5, // 默认每页显示多少条记录
										"iDisplayStart" : 0,
										"ordering" : false,// 全局禁用排序
										"dom" : '<l<\'#topPlugin\'>f>rt<ip><"clear">',
										"sAjaxSource" : url,
										"aoColumns" : [
												{ // aoColumns设置列时，不可以任意指定列，必须列出所有列。
													"mData" : "id",
													"orderable" : false, // 禁用排序
													"sDefaultContent" : "",
													"sWidth" : "2%"
												},
												{
													"mData" : "id",
													"orderable" : false, // 禁用排序
													"sDefaultContent" : "",
													"sWidth" : "6%",

												},
												{
													"mData" : "rolename",
													"orderable" : false, // 禁用排序
													"sDefaultContent" : "",
													"sWidth" : "10%"
												},
												{
													"mData" : "roledetail",
													"orderable" : false, // 禁用排序
													"sDefaultContent" : "",
													"sWidth" : "10%"
												},
												{
													"mData" : "id",
													"orderable" : false, // 禁用排序
													"sDefaultContent" : '',
													"sWidth" : "10%",
													"render" : function(data,
															type, full, meta) { // render改变该列样式,4个参数，其中参数数量是可变的。
														var topPlugin2 = ' <button   class="btn btn-primary" onclick="b('
															+ data
															+ ')">权限管理</button>';

														var topPlugin1 = ' <button   class="btn btn-primary" onclick="a('
																+ data
																+ ')">修改</button>';
														return data = '<button id="deleteOne" class="btn btn-danger btn-sm" data-id='
																+ data
																+ '>删 除</button>'
																+ topPlugin1+topPlugin2;

													}
												}
										// data指该行获取到的该列数据
										// row指该行，可用row.name或row[2]获取第3列字段名为name的值
										// type调用数据类型，可用类型“filter”,"display","type","sort",具体用法还未研究
										// meta包含请求行索引，列索引，tables各参数等信息

										],
										"columnDefs" : [ {
											"orderable" : false, // 禁用排序
											"targets" : [ 0 ], // 指定的列
											"data" : "id",
											"render" : function(data, type,
													full, meta) {

												return '<input type="checkbox" value="'
														+ data
														+ '" name="id"/>';
											}
										} ],
										"oLanguage" : { // 国际化配置
											"sProcessing" : "正在获取数据，请稍后...",
											"sLengthMenu" : "显示 _MENU_ 条",
											"sZeroRecords" : "没有找到数据",
											"sInfo" : "从 _START_ 到  _END_ 条记录 总记录数为 _TOTAL_ 条",
											"sInfoEmpty" : "记录数为0",
											"sInfoFiltered" : "(全部记录数 _MAX_ 条)",
											"sInfoPostFix" : "",
											"sSearch" : "搜索",
											"sUrl" : "",
											"oPaginate" : {
												"sFirst" : "第一页",
												"sPrevious" : "上一页",
												"sNext" : "下一页",
												"sLast" : "最后一页"
											}
										},
										initComplete : initComplete,
										drawCallback : function(settings) {
											$('input[name=allChecked]')[0].checked = false;// 取消全选状态
										}

									});

					/**
					 * 表格加载渲染完毕后执行的方法
					 * 
					 * @param data
					 */
					function initComplete(data) {

						// 删除用户按钮的HTMLDOM
						var topPlugin = '<button   class="btn btn-danger btn-sm" id="deleteAll">删除</button> <button   class="btn btn-primary btn-sm addBtn" >新 增</button>';

						// var topPlugin1 = ' <button class="btn btn-primary"
						// >修改</button>';
						$("#topPlugin").append(topPlugin);// 在表格上方topPlugin
						// DIV中追加HTML

					}

					/**
					 * 单行删除按钮点击事件响应
					 */

					$(document).delegate('#deleteOne', 'click', function() {
						var id = $(this).data("id");
						$("#delSubmit").val(id);
						$("#deleteOneModal").modal('show');
					});

					/**
					 * 点击确认删除按钮
					 */
					$(document).delegate('#delSubmit', 'click', function() {
						var id = $(this).val();
						$('#deleteOneModal').modal('hide');
						var url = "syroledelete.action";
						$.ajax({
							/* 后台未实现 */
							url : url,
							type : "post",
							async : true,
							dataType : "json",
							cache : false, // 不允许缓存

							//
							// success : function(a) {
							// if (a.flag == true) {
							// alert(a.msg);
							// } else {
							// alert(a.msg);
							// }
							// table.ajax.reload();
							//
							// $('#myModal-add-info').modal('hide');
							//

							data : {
								'ids' : id

							},
							success : function(data) {
								var obj = eval(data);
								if (obj.flag == true) {
									alert("删除成功");
									window.location.reload();
								} else {
									alert("删除失败");
								}

							},
							error : function(data) {
								alert("请求异常");
							}
						});
					});

					/**
					 * 多选选中和取消选中,同时选中第一个单元格单选框,并联动全选单选框
					 */
					$('#example tbody')
							.on(
									'click',
									'tr',
									function(event) {
										var allChecked = $('input[name=allChecked]')[0];// 关联全选单选框
										$($(this).children()[0])
												.children()
												.each(
														function() {
															if (this.type == "checkbox"
																	&& (!$(
																			event.target)
																			.is(
																					":checkbox") && $(
																			":checkbox",
																			this)
																			.trigger(
																					"click"))) {
																if (!this.checked) {
																	this.checked = true;
																	addValue(this);
																	var selected = table
																			.rows(
																					'.selected')
																			.data().length;// 被选中的行数
																	console
																			.info(selected
																					+ '个数');
																	// 全选单选框的状态处理
																	var recordsDisplay = table.page
																			.info().recordsDisplay;// 搜索条件过滤后的总行数
																	var iDisplayStart = table.page
																			.info().start;// 起始行数
																	if (selected === table.page
																			.len()
																			|| selected === recordsDisplay
																			|| selected === (recordsDisplay - iDisplayStart)) {
																		allChecked.checked = true;
																	}
																} else {
																	this.checked = false;
																	cancelValue(this);
																	allChecked.checked = false;
																}
															}
														});
										$(this).toggleClass('selected');// 放在最后处理，以便给checkbox做检测
									});

					/**
					 * 全选按钮被点击事件
					 */
					$('input[name=allChecked]').click(function() {
						if (this.checked) {
							$('#example tbody tr').each(function() {
								console.info(1);
								if (!$(this).hasClass('selected')) {
									$(this).click();
									console.info(2);
								}
							});
						} else {
							$('#example tbody tr').click();
						}
					});

					/**
					 * 单选框被选中时将它的value放入隐藏域
					 */
					function addValue(para) {
						var userIds = $("input[name=userIds]");
						if (userIds.val() === "") {
							userIds.val($(para).val());
						} else {
							userIds.val(userIds.val() + "," + $(para).val());
						}
					}

					/**
					 * 单选框取消选中时将它的value移除隐藏域
					 */
					function cancelValue(para) {
						// 取消选中checkbox要做的操作
						var userIds = $("input[name=allChecked]");
						var array = userIds.val().split(",");
						userIds.val("");
						for (var i = 0; i < array.length; i++) {
							if (array[i] === $(para).val()) {
								continue;
							}
							if (userIds.val() === "") {
								userIds.val(array[i]);
							} else {
								userIds.val(userIds.val() + "," + array[i]);
							}
						}
					}

					/**
					 * 新增
					 */
					$(document).delegate('.addBtn', 'click', function() {
						$('#myModal-add-info').modal('show');

					});

					$(document).delegate('.updateBtn', 'click', function() {
						$('#myModal-update-info').modal('show');

					});

					/**
					 * 批量删除
					 */
					$(document).delegate('#deleteAll', 'click', function() {
						var theArray = [];
						$("input[name=id]:checked").each(function() {
							theArray.push($(this).val());
						});
						if (theArray.length < 1) {
							alert("请至少选择一个");
						} else {
							alert(theArray.toString());

							var url = "syroledelete.action";
							$.ajax({
								url : url,
								type : "post",
								data : {
									'ids' : theArray.toString()

								},
								dataType : "json",
								success : function(a) {
									if (a.flag == true) {
										alert(a.msg);
									} else {
										alert(a.msg);
									}
									table.ajax.reload();

									$('#myModal-add-info').modal('hide');

								}
							});

						}

					});

				});
/*
 * 增加
 */
function syroleadd() {
	var url = "syroleadd.action";
	$.ajax({
		url : url,
		type : "post",
		data : {
			'rolename' : $("#rolenameid").val(),
			'roledetail' : $("#roledetailid").val()
		},
		dataType : "json",
		success : function(a) {
			if (a.flag == true) {
				alert(a.msg);
			} else {
				alert(a.msg);
			}
			table.ajax.reload();

			$('#myModal-add-info').modal('hide');

		}
	});

}
// 修改
function syroleupdata() {
	var url = "syroleupdate.action";
	$.ajax({
		url : url,
		type : "post",
		data : {
			'id' : $("#updateid").val(),
			'rolename' : $("#updaterolenameid").val(),
			'roledetail' : $("#updateroledetailid").val()
		},
		dataType : "json",
		success : function(a) {
			if (a.flag == true) {
				alert(a.msg);
			} else {
				alert(a.msg);
			}
			table.ajax.reload();
			$('#myModal-update-info').modal('hide');

		}
	});

}

function a(id) {

	var url = "syroledetail.action";
	$.ajax({
		url : url,
		type : "post",
		data : {
			'id' : id

		},
		dataType : "json",
		success : function(a) {
			$('#updateid').val(a.id);
			$("#updaterolenameid").val(a.rolename);
			$("#updateroledetailid").val(a.roledetail);

			$('#myModal-update-info').modal('show');

		}

	});
}
function b(id) {
//	alert(id);
//	$('#myModal-addauthority-info').modal('show');
//	var id=id;
	$.ajax({
		url :"jsonauthority.action",
		type:"post",
		data : {'id':id},
		dataType : "json",
		success : function(data) {
			$("#roleid").val(data.id);
			
			$('#myModal-addauthority-info').modal('show');
		}
		
});
	}


function userAddAuthority(){
   var roleid= $("#roleid").val();
   var theArray=[];
   theArray.push(roleid);
	 var obj=document.getElementsByName("authid"); 
	 //取到对象数组后，我们来循环检测它是不是被选中 
	 for(var i=0; i<obj.length; i++){ 
	  if(obj[i].checked) {
		  theArray.push(obj[i].value); 
	  }
	 } 
	 var ids=theArray.toString();			
	$.ajax({
		url :"insertroleauthority.action",
		type:"post",
		data : {'ids':ids},
		dataType : "json",
		success : function(data) {				
			if(data.flag==true){
				alert(data.msg);
			}else{
				alert(data.msg);
			}
			$('#myModal-addauthority-info').modal('hide');
		}
	}); 		
}
